package com.studay;

public class Main {
    public static void main(String[] args) {
        // 优化 将算式尽量优化为不需要运算 小细节优化!
//        --------------------
//        java.util.ArrayList<E>
//        源码

//        --------------------------------------
        //对象数组 里面放的是对象是 地址值
        //不管是什么类型 都是8个字节

        ArrayList<Person> per = new ArrayList<>();
        per.add(new Person(10,"jac"));
        per.add(null);//能存储null
        per.add(new Person(23,"jas"));
        per.add(new Person(50,"jdc"));
        per.clear();
        //对象是被JVM的gc回收的 但是可能不会被马上回收
        //所以提醒一下
        System.gc();

    }


    //----------------------------------
    //转成泛型之后 我们要考虑 对象的类型管理问题 对象数组↑
//    public static void main(String[] args) {
////        int array[] = new int[]{11,22,33};
//
//        //所有的的类 最终都继承 Object
//        ArrayList<Person> persons = new ArrayList<>();
//        persons.add(new Person(10,"Jack"));
//        persons.add(new Person(11,"Lucy"));
//        persons.add(new Person(101,"AV"));
//
//        System.out.println(persons);
//
//        ArrayList<Integer> ints = new ArrayList<>();
//        ints.add(10);
//        ints.add(123);
//        ints.add(131);
//        System.out.println(ints);
//
//
////        list.add(23);
////        list.add(11);
////        list.add(13);
////        list.add(99);
////        list.add(88);
////        list.add(66);
//
////        System.out.println(list.toString());//默认返回一个类名
//        //这样返回的com.studay.ArrayList@1b6d3586 不符合我们的返回要求
//        //重写toString
////        -----------------------------------
////        list.remove(0);
////        System.out.println(list.toString());
////        list.remove(3);
////        System.out.println(list.toString());
////
////        list.add(0,10);
////        System.out.println(list.toString());
////
////        list.set(3,76);
////        System.out.println(list);
////        ------------------------------------------------
//
//        /*
//        设计了接口  需要做一个测试的东西来检测这个接口 每次看结果很累！
//         */
////        list.set(3,80);
////        System.out.println(list);
//
//        //这样太累 写了个Assert
////        if (list.get(3) != 80){
////            throw new IllegalArgumentException("测试不通过");
////        }
////        System.out.println(list);
////        ---------------------------------------------------
////
////        list.remove(0);
////        Assert.test(list.get(0) ==11);
//
////        --------------------------------
////        for (int i = 0; i < 30; i++) {
////            list.add(i);
////        }
////
////        System.out.println(list);
//
//        //数组中希望可以放入别的类型 比如小数 Person对象等
//        //这时候就需要 泛型 这样我们就可以随心所欲的放啦~
//
//
//
//
//
//    }
}
